package com.wechatFriendExportTool.utils;

import java.awt.Toolkit;
import java.awt.datatransfer.*;
import java.io.IOException;

public class ClipboardReader {
    
    /**
     * 获取剪贴板中的文本内容
     * @return 剪贴板文本内容，如果获取失败返回null
     */
    public static String getClipboardText() {
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        Transferable transferable = clipboard.getContents(null);
        
        if (transferable != null && transferable.isDataFlavorSupported(DataFlavor.stringFlavor)) {
            try {
                return (String) transferable.getTransferData(DataFlavor.stringFlavor);
            } catch (UnsupportedFlavorException | IOException e) {
                System.err.println("获取剪贴板文本失败: " + e.getMessage());
            }
        }
        return null;
    }
    
    /**
     * 安全地获取剪贴板文本，带有异常处理
     */
    public static String getClipboardTextSafely() {
        try {
            return getClipboardText();
        } catch (Exception e) {
            System.err.println("安全模式获取剪贴板失败: " + e.getMessage());
            return null;
        }
    }

    /**
     * 删除剪贴板
     */
    public static void delClipboardText() {
// 获取系统剪贴板
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
// 封装字符串
        StringSelection selection = new StringSelection("");
// 设置剪贴板内容
        clipboard.setContents(selection, null);
    }
    
    public static void main(String[] args) {
        delClipboardText();
        String clipboardText = getClipboardText();
        if (clipboardText != null) {
            System.out.println("剪贴板内容:");
            System.out.println(clipboardText);
        } else {
            System.out.println("剪贴板为空或不是文本内容");
        }
    }
}